#define SIZE_SECTOR 512
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int abrir_archivo_fat(FILE *);

int abrir_archivo_fat(FILE * fp)
{
	void dcc_llenar_desde_cluster(char *v_FS_information_sector, char *cluster, unsigned long long comienzo , unsigned long long largo);
	if((fp = fopen("/home/utn_so/Desarrollo/Workspace/FuseFileSystem/fat32.disk", "r+")) == NULL)	return(0);
	return(1);
}

void pedir_bloque_memoria(char *buff)
{
	buff = (char *)malloc( SIZE_SECTOR*sizeof(char));
}

void eliminar_bloque_memoria(char *buff)
{
	 free(buff);
}

void imprimir_sector(unsigned long sector, char *bloque_sector)
{
	  printf("\n\nListando la lectura del sector nro: %d\n", sector);
	  int i;
	  for (i=0; i< SIZE_SECTOR; i++)
	  {
	          printf("%c",bloque_sector[i]);
	  }
	  printf("\n\nProceso terminado\n");
}
void limpiar_bloque_memoria(char *bloque_sector, char * mensaje)
{
	char un_byte;
	int i;
	for (i=0; i<SIZE_SECTOR-strlen(mensaje); i++)
	{
		bloque_sector[i] = ' ';
	}
	for (i=SIZE_SECTOR-strlen(mensaje); i<SIZE_SECTOR; i++)
	{
		bloque_sector[i] = mensaje[i-(SIZE_SECTOR-strlen(mensaje))];
	}
}
void escribir_sector(unsigned long sector, FILE *fp , char *bloque_sector)
{
	char un_byte;
  	imprimir_sector(sector,bloque_sector);

	sector = sector * SIZE_SECTOR;
	posicionar_puntero(fp, sector);
	int i;
	for (i=0; i<SIZE_SECTOR; i++)
	{
		un_byte = *(bloque_sector+i);
		fputc(un_byte, fp );
	}
}
int posicionar_puntero (FILE *fp, unsigned long posicion)
{
	if(fseek(fp, posicion, SEEK_SET)) {
	  printf("error en Seek.\n");
	  return(-1);
	}
	return 0;
}
char * leer_sector (unsigned long sector, FILE *fp)
{
	char un_byte;
	char * buff;
	sector = sector * SIZE_SECTOR;
	posicionar_puntero(fp, sector);
	buff = (char *)malloc( SIZE_SECTOR*sizeof(char) );
	int i;
	for (i=0; i<SIZE_SECTOR; i++)
	{
		un_byte = fgetc( fp ) ;
		buff[i] = un_byte;
	}
	return buff;
}
